// 验证用户名 1. 第一位必须是字母   2.中间可以是数字，字母，下划线，汉字,中划线  3.总位数为4~9位
let source = '1dfi罗1'; //false
source = '_罗鸣-1'  //false
source = 'a0i-s_鸣d' //true

res = /^[a-z][\w\-\p{sc=Han}]{3,8}$/ui.test(source);


//多用正则表达式来验证一个目标字符串
//1. 必须由字母，汉字，数字，下划线，中划线组成     2. 其中必须有一个大写字母   3.必须由字母或数字开始 4.必须有一个数字
source = 'aei0-A_鸣d';
let regs = [/^[0-9a-z][\w\-\p{sc=Han}]{6,12}$/ui, /[A-Z]/, /\d/]
res = regs.every(x => x.test(source));
// every() 与  .foreach()
// 前者验证数组中的每个值是否都满足某一种属性
// 后者以同一中手段来改变数组中的每一个值

res = 'ohhhhhhhohhh'.match(/oh{2,7}/g);
// res = 'ohhhhhhhohhh'.match(/oh{2,7}?/g);
console.log(res);
